Translating programs into one or more different spoken languages (e.g., French or German) from the language of the original program has been a standard process for many years, particularly for software programs and systems that are sold overseas. This process is referred to as “localizing” a program for the desired language. There are several conventional ways for localized text to be provided in a computer program.
One conventional way is to pre-translate text files of the original program into the target language and compile them into a specialized library that can then be called by a program at execution (runtime) of the computer program. These specialized libraries are referred to as “translated text libraries.” This process can be performed, for example, manually by a runtime library vendor. Generally, this process is generally performed separately for each particular format and version of the computer program. A second conventional way is to alter the original program itself with translated text and recompile it to display the text strings in the particular target language. This process requires a substantial effort on part of the software developer.
A runtime library is a program library used by a compiler to implement functions built into a programming language during runtime. When the source code of a computer program is compiled (e.g., translated) into a computer-readable language, it would cause an extreme enlargement of program code if each command in the program and every call to a built-in function required generating a complete program in the target language every time. Instead of doing this, the compiler uses auxiliary functions in runtime libraries. This often includes functions for input and output, or memory management, as examples. Vendors of runtime libraries for programs have incorporated features into those libraries that enable the automatic detection of translated text libraries as well as the display of the translated strings of text within a program. Along with this effort, there have been efforts to standardize the translations of normal text that appear on buttons and in menus.
Despite this standardization, however, there are still requirements to have more personalized translations of standard text translations. There is generally more than one desired translation of a certain text into the target language. Different users, businesses, and fields of interest will therefore have a desire to customize certain translations. For instance, a word used in an engineering context may carry a different meaning than the same word when used by a doctor. Although the majority of the standard translations may suffice, there will almost always be some need for user-specific customization of text translations. User-specific localization of translated text is used in cases where a standard translation fails to capture the appropriate meaning in a particular context.
Translations of software programs are generally created and maintained by runtime library vendors for every major language. The translated text libraries are provided to customers with encryption as a compiled, digitally-signed library. For every customization, a new library must be created, compiled and digitally signed. For any user-specific customizations, software developers generally provide the custom translations to the runtime library vendors, and the vendors compile and digitally sign them, and then send them back to the developers to be tested with their software programs. In other cases, the runtime library vendors can provide both software programs and runtime libraries as a package. The software in those packages can be modified, compiled, signed, and sent back to the developers as a package. Often, runtime library vendors often cannot support customized versions of the software for future technical issues that may arise. As a result, it becomes burdensome for vendors, particularly if more than one target language is needed.